// 封装的处理小程序登录的文件
import { smLoginRequest } from "./index"; // 导入封装的网络请求模块

// 1、处理用户登录，获取 code
export function getLoginCode() {
  return new Promise((resolve, reject) => {
    // 调用小程序登录的 API
    wx.login({
      timeout: 1000, // 超时时间
      // 成功的回调
      success: res => {
        const code = res.code; // 获取到 code
        resolve(code);
      },
      // 失败的回调
      fail: err => {
        console.log(err);
        reject(err);
      }
    });
  });
}

// 2、发送 code 给服务器，换取一个 token 给客户端
export function codeToToken(code) {
  // 发送登录请求
  return smLoginRequest.post("/login", { code });
}

// 3、判断 token 是否过期
export function checkToken() {
  return smLoginRequest.post("/auth", {}, true);
}

// 4、检查 session_key 是否过期
export function checkSession() {
  return new Promise((resolve) => {
    // 调用小程序的 API
    wx.checkSession({
      // 成功的回调
      success: () => {
        resolve(true);
      },
      // 失败的回调
      fail: () => {
        resolve(false);
      }
    });
  })
}

// 5、获取当前微信的用户信息
export function getUserInfo() {
  return new Promise((resolve, reject) => {
    // 调用小程序的 API
    wx.getUserProfile({
      desc: 'liangshuang', // 声明获取用户个人信息后的用途，必填
      // 成功的回调
      success: res => {
        resolve(res)
      },
      // 失败的回调
      fail: err => {
        reject(err);
      }
    });
  })
}
